﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BHXH.Core.IService;
using FX.Core;
using CRM.Admin;
using BHXH.Core.Domain;
using NHibernate.Cfg;
using NHibernate;
using System.Text.RegularExpressions;
namespace BHXH.Frm.Frm
{
    public partial class ThongTinXuatHoaDon : UserControl
    {
        static string MaSoThue = "01696223732";

        private readonly IthongtincongtyService _thongtincongtySrv;
        private readonly IthongtinhoadonService _thongtinhoadonSrv;
        public ThongTinXuatHoaDon()
        {
            InitializeComponent();
            _thongtincongtySrv = IoC.Resolve<IthongtincongtyService>();
            _thongtinhoadonSrv = IoC.Resolve<IthongtinhoadonService>();


            GetHoaDonByID(MaSoThue);
        }
       
        public void Them_Sua_Thongtin()
        {
            thongtinhoadon tthd = new thongtinhoadon();
            if(lblID.Text == "0")
            {
                tthd.TenDonVi = txtTenDonVi.Text;
                tthd.MaSoThue = txtMaSoThue.Text;
                tthd.SoTaiKhoan = txtSoTaiKhoan.Text;
                tthd.HoTen = txtHoTen.Text;
                tthd.SoDienThoai = txtSoDienThoai.Text;
                tthd.Email = txtEmail.Text;
                tthd.DiaChi = txtDiaChi.Text;
                if (_thongtinhoadonSrv.AddHoaDon(tthd) == true)
                {
                    MessageBox.Show("Thêm thông tin thành công...");
                }
                GetHoaDonByID(MaSoThue);
                setEnable(false);                
            }else
            {
                tthd.ID = int.Parse(lblID.Text);
                tthd.TenDonVi = txtTenDonVi.Text;
                tthd.MaSoThue = txtMaSoThue.Text;
                tthd.SoTaiKhoan = txtSoTaiKhoan.Text;
                tthd.HoTen = txtHoTen.Text;
                tthd.SoDienThoai = txtSoDienThoai.Text;
                tthd.DiaChi = txtDiaChi.Text;
                tthd.Email = txtEmail.Text;
                if (_thongtinhoadonSrv.UpdateHoaDon(tthd))
                {
                    MessageBox.Show("Sửa thông tin thành công...");
                }
                GetHoaDonByID(MaSoThue);
                setEnable(false);
            }
        }
        public bool Check()
        {
            if (txtTenDonVi.Text == "")
            {
                MessageBox.Show("Yêu cầu nhập tên Đơn Vị vào...");
                txtTenDonVi.Focus();
                return false;
            }
            else if (txtMaSoThue.Text == "")
            {
                MessageBox.Show("Yêu cầu nhập Mã Số Thuế vào...");
                txtMaSoThue.Focus();
                return false;
            }
            else if (txtSoTaiKhoan.Text == "")
            {
                MessageBox.Show("Yêu cầu nhập Số tài khoản vào...");
                txtSoTaiKhoan.Focus();
                return false;
            }
            else if (txtHoTen.Text == "")
            {
                MessageBox.Show("Yêu cầu nhập Họ tên người mua vào...");
                txtHoTen.Focus();
                return false;
            }
            else if (txtDiaChi.Text == "")
            {
                MessageBox.Show("Yêu cầu nhập Địa chỉ vào...");
                txtDiaChi.Focus();
                return false;
            }
            else if (txtSoDienThoai.Text == "")
            {
                MessageBox.Show("Yêu cầu nhập Số điện thoại vào...");
                txtSoDienThoai.Focus();
                return false;
            }
            else return true;
        }
        public void GetHoaDonByID(String MaSoThue)
        {
            var ThongTinHoaDon = _thongtinhoadonSrv.GetHoaDonByID(MaSoThue);
            if (ThongTinHoaDon.ID != 0)
            {
                lblID.Text = ThongTinHoaDon.ID.ToString();
                txtTenDonVi.Text = ThongTinHoaDon.TenDonVi;
                txtMaSoThue.Text = ThongTinHoaDon.MaSoThue;
                txtSoTaiKhoan.Text = ThongTinHoaDon.SoTaiKhoan;
                txtHoTen.Text = ThongTinHoaDon.HoTen;
                txtDiaChi.Text = ThongTinHoaDon.DiaChi;
                txtSoDienThoai.Text = ThongTinHoaDon.SoDienThoai;
                txtEmail.Text = ThongTinHoaDon.Email;

                setEnable(false);
            }
            else
            {
                lblID.Text = "0";
                var ThongTinDonVi = _thongtincongtySrv.GetDonViByID(MaSoThue);
                txtTenDonVi.Text = ThongTinDonVi.TenCongTy;
                txtMaSoThue.Text = ThongTinDonVi.MaSoThue;
                txtSoTaiKhoan.Text = ThongTinDonVi.SoTaiKhoan;
                txtHoTen.Text = ThongTinDonVi.NguoiKyToKhai;
                txtDiaChi.Text = ThongTinDonVi.DiaChi;
                txtSoDienThoai.Text = ThongTinDonVi.DienThoai;
                txtEmail.Text = ThongTinDonVi.Email;                
                setEnable(true);
            }
        }
        public void setEnable(bool b)
        {
            panelThongtinVietHD.Enabled = b;
            panel_ThongTinLienHe.Enabled = b;
        }

        public void Exit_App()
        {
            if (DialogResult.Yes == MessageBox.Show("Bạn có chắc chắn thoát không?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question))
            {
                Application.ExitThread();
            }
        }
        public void btnSua_Click()
        {
            setEnable(true);
        }
        public void btnLuu_click()
        {
            if (Check() == true)
            {
                Them_Sua_Thongtin();
            }
        }
        public void btnBoQua_Click()
        {
            setEnable(false);
            GetHoaDonByID(MaSoThue);
        }
        private void lbSaoChep_Click(object sender, LinkLabelLinkClickedEventArgs e)
        {
            var ThongTinDonVi = _thongtincongtySrv.GetDonViByID(MaSoThue);
            txtTenDonVi.Text = ThongTinDonVi.TenCongTy;
            txtMaSoThue.Text = ThongTinDonVi.MaSoThue;
            txtSoTaiKhoan.Text = ThongTinDonVi.SoTaiKhoan;
        }

        private void txtSoDienThoai_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
                e.Handled = true;
        }
    }
}
